package Day12.Collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

/**
 * @author hyhWTX
 * @version 1.0
 * @ClassName Demo03Sort
 * @date 2022年07月12日 15:03
 * @Description: Collections的使用示例
 */
public class Demo03Sort {
    public static void main(String[] args) {
        ArrayList<Integer> list01 = new ArrayList<>();
        list01.add(1);
        list01.add(3);
        list01.add(2);
        System.out.println(list01);

        Collections.sort(list01, new Comparator<Integer>() {

            //重写比较的规则
            @Override
            public int compare(Integer o1, Integer o2) {
//                return o1-o2;//实现升序排序
                return  o2-o1;//实现降序排序
            }
        });
        System.out.println(list01);

        //创建一个集合，存储学生
        ArrayList<Student> list02 = new ArrayList<>();
        list02.add(new Student("迪丽热巴",18));
        list02.add(new Student("古力娜扎",15));
        list02.add(new Student("马尔扎哈",36));
        list02.add(new Student("杨幂",26));
        list02.add(new Student("杨幂",18));

        System.out.println(list02);

//        Collections.sort(list02, new Comparator<Student>() {
//            @Override
//            public int compare(Student o1, Student o2) {
//                //按照年龄升序排列
//                return  o1.getAge()-o2.getAge();
//            }
//        });
//        System.out.println(list02);

        //扩展
        Collections.sort(list02, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                //按照年龄升序排列
                int result =  o1.getAge()-o2.getAge();
                //如果两个人年纪相同，在使用姓名的第一个字比较
                if (result==0){
                    result = o1.getName().charAt(0)-o2.getName().charAt(0);
                }
                return result;
            }
        });
        System.out.println(list02);
    }
}
